# z正则表达式
import re
# 检测string的整个部分
match = re.search(r'[1-9]\d{5}','BIT 100081')
if match:
	print(match.re)
	print(match.pos) # 搜索字符串的开始位置
	print(match.endpos) # 搜索字符串的结束位置
	print(match.start()) # 匹配结果在源字符串的起始位置
	print(match.end()) # 匹配结果在源字符串的结束位置
	print(match.span())
	print(match.group(0))

# 从开始检测字符串
match = re.match(r'[1-9]\d{5}','BIT 100081')
if match:
	print(match.group(0))

match = re.match(r'[1-9]\d{5}','100081 BIT')
if match:
	print(match.re)
	print(match.group(0))

# 匹配所有
match = re.findall(r'[1-9]\d{5}','TUS 100081 BIT 100084')
print(match)

match = re.split(r'[1-9]\d{5}','TUS 100081 BIT 100084')
print(match)

match = re.split(r'[1-9]\d{5}','TUS 100081 BIT 100084',maxsplit=1)
print(match)

# 迭代器
for i in re.finditer(r'[1-9]\d{5}','TUS 100081 BIT 100084'):
	if i:
		print(i.group(0))

# 替换
match = re.sub(r'[1-9]\d{5}','zipcode','TUS 100081 BIT 100084')
print(match)

# complie 将字符串编译为正则表达式对象


# 贪婪模式  默认采用，输出匹配最长的子串 用.*? 可以输出最小匹配
# *？ 前一个字符0次或无限次扩展，最小匹配
# +？ 前一个字符1次或无限次扩展，最小匹配
# ？？ 前一个字符0次或1次扩展，最小匹配
#{m,n} 最小匹配